/**
 * 1 页面被打开的时候 onShow
 *  0 OnShow 不同于 onLoad 无法在形参上接受 ontions参数
 *   1 不过可以通过页面栈获得
 *  0.5 判断缓存中有没有token
 *   1 如果没有，就跳转到授权页面
 *   2 如果有 则往下执行
 *  1 获取url上的参数type
 *  2 根据type来决定页面标题的数组元素，哪个被激活选中
 *  2 根据type 去发送请求获取订单数据
 *  3 渲染页面
 * 2 点击不同的标题 重新发送请求来获取和渲染数据
 */
import {request} from "../../request/request.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    Tabs: [{
      id: 0,
      text: "全部",
      isAction: true
    }, {
      id: 1,
      text: "待付款",
      isAction: false
    }, {
      id: 2,
      text: "待发货",
      isAction: false
    }, {
      id: 3,
      text: "退款/退货",
      isAction: false
    }],
    orders:[]
  },
  onShow(){
    // 1 获取页面栈的数据
    var pages =  getCurrentPages();
    // 2 获取当前页面的参数 pages.length-1
    const {type} = pages[pages.length-1].options;

    // 3 根据type, 激活选中的标题 当type=1 index=0
    this.changTitleByIndex(type - 1);


    // 4 判断缓存中是否存在token值
    const token = wx.getStorageSync("token");
    if(!token){
      wx.navigateTo({
        url: '/pages/auth/auth'
      });
      return;
    }
    
    //发送请求，获取订单数据
    this.getOrders(type);
  },
  async getOrders(type){
      //发送请求，获取订单数据
      const res = await request({url:"/my/orders/all",data:{type}});
      //保存数据，同时添加一个创建时间，中文的（通过create_time转换）
      let {orders} = res.data.message;
      this.setData({
        orders:orders.map(v=>({...v, create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
      });
  },
  //标题事件
  tabsItemChange(e) {
    //1获取子组件，URL传参方式传过来的参数
    const { index } = e.detail;
    //2更新数据
    this.changTitleByIndex(index);
    // 3 重新发送请求获取订单数组 index=0 type=1
    this.getOrders(index+1);
  },
  //更新标题被激活数据
  changTitleByIndex(index){
    let { Tabs } = this.data;
    Tabs.forEach((v, i) => i === index ? v.isAction = true : v.isAction = false);
    this.setData({
      Tabs
    })
  }
  
})